home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.3)
-
- from string import join
-
- class FakeHandle:
-
- def __init__(self, name, fakeopen):
- self.name = name
- self.fakeopen = fakeopen
- self.pos = 0
-
-
- def flush(self):
- pass
-
-
- def close(self):
- pass
-
-
- def seek(self, pos):
- self.pos = pos
-
-
- def read(self, amount = None):
- old = self.pos
- f = self.fakeopen.files[self.name]
- if self.pos >= len(f):
- return ''
-
- if amount is None:
- self.pos = len(f)
- return join(f[old:], '')
- else:
- self.pos = min(len(f), old + amount)
- return join(f[old:self.pos], '')
-
-
- def write(self, s):
- f = self.fakeopen.files[self.name]
- while len(f) < self.pos:
- f.append(chr(0))
- self.fakeopen.files[self.name][self.pos:self.pos + len(s)] = list(s)
- self.pos += len(s)
-
-
-
- class FakeOpen:
-
- def __init__(self, initial = { }):
- self.files = { }
- for key, value in initial.items():
- self.files[key] = list(value)
-
-
-
- def open(self, filename, mode):
- """currently treats everything as rw - doesn't support append"""
- self.files.setdefault(filename, [])
- return FakeHandle(filename, self)
-
-
- def exists(self, file):
- return self.files.has_key(file)
-
-
- def getsize(self, file):
- return len(self.files[file])
-
-
-
- def test_normal():
- f = FakeOpen({
- 'f1': 'abcde' })
- if not f.exists('f1'):
- raise AssertionError
- if not not f.exists('f2'):
- raise AssertionError
- if not f.getsize('f1') == 5:
- raise AssertionError
- h = f.open('f1', 'rw')
- if not h.read(3) == 'abc':
- raise AssertionError
- if not h.read(1) == 'd':
- raise AssertionError
- if not h.read() == 'e':
- raise AssertionError
- if not h.read(2) == '':
- raise AssertionError
- h.write('fpq')
- h.seek(4)
- if not h.read(2) == 'ef':
- raise AssertionError
- h.write('ghij')
- h.seek(0)
- if not h.read() == 'abcdefghij':
- raise AssertionError
- h.seek(2)
- h.write('p')
- h.write('q')
- if not h.read(1) == 'e':
- raise AssertionError
- h.seek(1)
- if not h.read(5) == 'bpqef':
- raise AssertionError
- h2 = f.open('f2', 'rw')
- if not h2.read() == '':
- raise AssertionError
- h2.write('mnop')
- h2.seek(1)
- if not h2.read() == 'nop':
- raise AssertionError
- if not f.exists('f1'):
- raise AssertionError
- if not f.exists('f2'):
- raise AssertionError
- if not f.getsize('f1') == 10:
- raise AssertionError
- if not f.getsize('f2') == 4:
- raise AssertionError
-
-